The present invention relates to the processing of data frames being transferred through a network, and more particularly to a method for using a network processor to perform network bridging functions for data frames destined for or originating from a control point in the network.
In computer networks data is typically communicated between network devices in “frames”. In addition to user data, each frame typically includes fields containing information for routing the frame through the network. The fields are used by a system of established protocols which may be thought of as being arranged in a “protocol stack” referred to as the Open Systems Interconnect (OSI) model. At the base of the stack is a Layer 1 (L1) which is the protocol relating to the physical transmission media of the network.
Above L1 is a Layer 2 (L2) used in Ethernet and Token Ring local area networks (LANs). The L2 level correlates unique media access control (MAC) addresses for network devices with physical ports.
A network switch may connect multiple virtual LANs (VLANs) and process frames for transfer within a VLAN or between VLANs. The L2 protocol is used for frame transfers within a VLAN. Operations by the switch at the L2 level are typically referred to as “bridging”. For communication between different VLANs, a Layer 3 (L3) protocol is needed. Operations by a network switch at the L3 level are typically referred to as “routing”.
In existing systems, a network switch 100 typically has the configuration shown in FIG. 1. A control point (CP) 101 in the switch comprises a general purpose processor and software including a logical router 102 for L3 operations and a logical bridge 104 for L2 operations. The logical router comprises a routing table 103 and the logical bridge comprises a MAC address database 105 correlating MAC addresses with physical ports. Multiple network processors (NPs) 106 (only one is shown) on the switch include a plurality of ports 107 for receiving and outputting data frames 108. Network processors such as 106 include specialized software and hardware which enable them to perform fast database look-ups for frame forwarding.
In existing systems, certain L3 frames propagated on a network are typically processed by the CP. Examples include ARP (Address Resolution Protocol) and OSPF (Open Shortest Path First) frames. In addition, applications running on the CP itself may generate frames destined for other CPs. For example, control protocols for setting up forwarding tables in the NPs run from CP to CP. Also; CPs may generate and/or receive SNMP (Simple Network Management Protocol) queries.
When an incoming frame 108 is sent to the CP or the CP generates a frame, the L3 software in the logical router 102 is executed to perform a look-up in the routing table 103 to determine a logical router interface corresponding to a destination MAC address in the frame. Then, L2 processing by the logical bridge 105 uses the logical router interface and the destination MAC address to look up the MAC address and port corresponding to the L3 destination address in the MAC address table 105, so that the frame can be forwarded to the appropriate target network device. Also, MAC address “learning” is performed by the logical bridge in the CP, which adds MAC addresses and ports to the MAC database to facilitate frame forwarding.
As noted above, the CP typically utilizes a general purpose processor. The processor typically executes a high-level code, such as “C”. Accordingly, the database look-ups entailed in the foregoing are relatively slow and consume a significant proportion of CP processing cycles. Further, memory in the CP must be allocated for the MAC address database used by the logical bridge.
In view of the above, an improved method of handling frames destined for or originating from the CP is needed.